import Cookies from 'js-cookie'
import defaultSettings from '@/settings.js'
import { defineStore } from 'pinia'
import { useDynamicTitle } from '@/utils/use-utils.js'

export const useAppStore = defineStore('app', {
  state: () => {
    return {
      // 项目标题
      title: '',
      // 全局尺寸
      size: 'default',
      // 设配类型：desktop-PC端 mobile-移动端
      device: 'desktop',
      // 侧边栏配置
      sidebar: {
        // 隐藏
        hide: false,
        // 展开
        opened: true,
        // 主题
        theme: defaultSettings.sideTheme,
        // 是否展示logo
        showLogo: defaultSettings.showSideLogo,
        // 动画
        withoutAnimation: false,
      },
      // 布局属性配置
      layout: {
        // 全局主题
        theme: '#409EFF',
        // 是否显示顶部导航
        showTopNav: defaultSettings.showTopNav,
        // 是否显示导航标签
        showTagsNav: defaultSettings.showTagsNav,
        // 是否固定头部
        fixedHeader: defaultSettings.fixedHeader,
        // 是否显示布局配置
        showSettings: defaultSettings.showSettings,
        // 是否显示动态标题
        dynamicTitle: defaultSettings.dynamicTitle
      }
    }
  },
  actions: {
    // 切换侧边栏状态
    toggleSideBar(withoutAnimation) {
      if (this.sidebar.hide) return false
      this.sidebar.opened = !this.sidebar.opened
      this.sidebar.withoutAnimation = withoutAnimation
      Cookies.set('sidebarStatus', this.sidebar.opened ? 1 : 0)
    },
    // 设置网页标题
    setDrowserTitle(title) {
      this.title = title
      useDynamicTitle()
    },
    // 修改布局设置
    changeLayoutSetting(type='layout', data) {
      const { key, value } = data
      if (this.hasOwnProperty(key)) {
        this[type][key] = value
      }
    },
  }
})
